<?php

namespace App\Http\Middleware;

use Closure;
use Dingo\Api\Routing\Helpers;
use Symfony\Component\HttpKernel\Exception\ConflictHttpException;//409
use Symfony\Component\HttpKernel\Exception\GoneHttpException;//410


class CheckBaseInfo
{
    use Helpers;
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed，
     * 此中间件的必要条件为用户已获得认证
     * 此中间件用于检查用户是否绑定手机和学校信息
     * 401：需要认证用户，
     * 409：需要用户绑定手机
     * 410：需要用户绑定学校信息
     */
    public function handle($request, Closure $next)
    {
        $user=$this->auth->user();
        if(!$user->phone_number){
            //手机号不存在，提示用户绑定手机号状态码为409
            throw new ConflictHttpException('需要绑定手机号');
        }
        if(!$user->university_id || !$user->campus_id){
            //需要绑定学校信息,提示用户绑定学校信息410
            throw new GoneHttpException('需要绑绑定学校信息');
        }
        return $next($request);
    }
}
